package com.leetcode.array;

/**
 * @author XW
 * @data 2024/7/8 18:07
 * @description 给你一个整数数组 nums。
 *
 * 返回两个（不一定不同的）质数在 nums 中 下标 的 最大距离。
 */
public class Code3115_PermetNumberDistance {
    public int maximumPrimeDifference(int[] nums) {
        if(nums.length == 1){
            return 0;
        }
        int left = 0;
        int right = nums.length-1;
        while(left < right){
            if(isPrime(nums[left]) && isPrime(nums[right])){
                return right - left;
            }
            if(!isPrime(nums[left])){
                left++;
            }
            if(!isPrime(nums[right])){
                right--;
            }
        }
        return 0;

    }

    private boolean isPrime(int num) {
        if(num == 1){
            return false;
        }
        for (int i = 2; i * i <= num; i++) {
            if (num % i == 0) {
                return false;
            }
        }
        return true;
    }

    public static void main(String[] args) {
        new Code3115_PermetNumberDistance().maximumPrimeDifference(new int[]{1,7});
    }


}
